package com.njupt.simulation.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class IMTTerminal implements  Node{
    private  Integer id;
    // IMT终端分布名称
    private String distributionName;
    //发射端邻频边带配置判断
    private int transAdjacentBandFlag;
    //发射端邻频边带配置
    private List<AdjacentBand> transAdjacentBand;

    // 上行起始频率，单位 MHz，取值范围 0~99999999，保留2位小数
    private double upFreqMin;

    // 上行终止频率，单位 MHz，取值范围 0~99999999，保留2位小数
    private double upFreqMax;

    // 下行起始频率，单位 MHz，取值范围 0~99999999，保留2位小数
    private double downFreqMin;

    // 下行终止频率，单位 MHz，取值范围 0~99999999，保留2位小数
    private double downFreqMax;

    // 发射功率，单位 dBW，取值范围 -9999~9999，保留2位小数
    private double transmitPower;

    // 天线增益，单位 dBi，取值范围 -99~99，保留2位小数
    private double gain;

    // 最低仰角，单位 °，取值范围 -90~90，保留2位小数
    private double minimumElevationAngle;

    // 分布模型类型，posisson 或 random
    private String distributionModel;

    // 分布区域中心经度，取值范围 -180~180，保留2位小数
    private double centerLongitude;

    // 分布区域中心纬度，取值范围 -90~90，保留2位小数
    private double centerLatitude;

    // 分布区域半径，单位 km，取值范围 0~999999999，保留2位小数
    private double radius;

    // 分布密度，单位 个/km2，取值范围 0~999999999，保留2位小数
    private double density;

    // 业务类型，posisson 或 uniform
    private String businessType;

    // 业务强度，取值范围 0~1，保留2位小数
    private double activity;

}
